/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tela;

import ferramentas.Permissao;
import ferramentas.Query;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pessoal.Coordenador;
import pessoal.CoordenadorUAB;
import pessoal.Curso;
import pessoal.GestorIPES;
import pessoal.Usuario;
import pessoal.UsuarioCIAR;
import pessoal.UsuarioSeduc;
import tentativa.Tentativa;
import tentativa.TentativaDemanda;
import tentativa.TentativaInscricao;

/**
 *
 * @author ciar
 */
public class login extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String cpf = request.getParameter("cpf");
            String senha = request.getParameter("senha");


            Query q = new Query();
            try {

                
                Usuario usuario = q.getUsuario(cpf);
                
                if (usuario != null && usuario.getSenha().equals(senha)) {
                    request.getSession().setAttribute("usuario", usuario);
                    out.println("Logado com sucesso.");
                    out.println("<script>window.alert('Logado com sucesso!');</script>");
                    Tentativa tentativa = (Tentativa) request.getSession().getAttribute("tentativa");
                    if (tentativa != null) {
                        if (tentativa instanceof TentativaInscricao) {
                            TentativaInscricao t = (TentativaInscricao) tentativa;
                            //out.println("<script>document.location.href='index.jsp?conteudo=inscricao&curso=" + t.getCurso() + "&tipo=" + t.getTipo() + "';</script>");
                            int numCurso = Integer.parseInt(t.getCurso());
                            if (q.getCurso(numCurso) != null){
                                Curso c = q.getCurso(numCurso);
                                int tipo = Integer.parseInt(t.getTipo());
                                if (c.getTipo() == tipo){
                                    out.println("<script>document.location.href='index.jsp?conteudo=inscricao_documentos&curso=" + t.getCurso() + "&tipo=" + t.getTipo() + "';</script>");
                                }
                                else {
                                    out.println("O tipo do curso informado não corresponde ao presente em nossa base de dados!<br /><br /><a href='javascript:history.go(-1)'>Voltar</a>");
                                    out.println("<script>window.alert('O tipo do curso informado não corresponde ao presente em nossa base de dados!');");
                                    out.println("document.location.href='index.jsp';</script>");
                                }
                            }
                            else {
                                out.println("Curso não encontrado!<br /><br /><a href='javascript:history.go(-1)'>Voltar</a>");
                                out.println("<script>window.alert('Curso não encontrado!');");
                                out.println("document.location.href='index.jsp';</script>");
                            }
                        } else if (tentativa instanceof TentativaDemanda) {
                            out.println("<script>document.location.href='" + tentativa.getDica() + "';</script>");
                        }
                    } else {
                        if (usuario instanceof Coordenador || usuario instanceof GestorIPES || usuario instanceof UsuarioCIAR || usuario instanceof UsuarioSeduc || usuario instanceof CoordenadorUAB) {
                            out.println("<script>document.location.href='index.jsp?conteudo=admin';</script>");
                        } else {
                            out.println("<script>document.location.href='index.jsp?conteudo=inscricoes';</script>");
                        }
                    }
                } else {
                    out.println("Login e/ou Senha Incorretos!<br /><br /><a href='javascript:history.go(-1)'>Voltar</a>");
                    out.println("<script>");
                    out.println("window.alert('Login e/ou Senha Incorretos!');");
                    out.println("window.location = 'index.jsp';");
                    out.println("</script>");
                }
            } catch (Exception ex) {
                out.println("Usuário não encontrado!<br /><br /><a href='javascript:history.go(-1)'>Voltar</a>");
                out.println("<script>window.alert('Usuário não encontrado!');");
                out.println("document.location.href='index.jsp';</script>");
            }
        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
